<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>箭头函数声明和特点</title>
</head>
<body>
<script>

    //函数表达式
    // let fun = (name, thin) => {
    //     console.log(`${name} ${thin}`)
    // }
    // const name = '箭头函数'
    // const thin = '我爱你~'
    // fun(name, thin);

    // 1. 箭头函数中的 this 是静态的，this始终指向函数声明时所在作用域下的this的值
    // function getName1() {
    //     console.log(this.name)
    // }
    //
    // let getName2 = () => {
    //     console.log(this.name)
    // }
    //
    // var name = 'zhangSan' // 定义window对象的name属性
    // const obj = {
    //     name: 'liSi'
    // }
    // // 直接调用
    // getName1();
    // getName2();
    // //call方法调用
    // getName1.call(obj);
    // getName2.call(obj);//箭头函数 this 是静态的

    // 2. 不能作为构造函数实例化对象
    // let Person = (name, age) => {
    //     this.name = name;
    //     this.age = age
    // }
    // let person1=new Person('zhangSan',15)
    // console.log(person1)

    // 3. 不能使用 arguments 变量
    // let fn=()=>{
    //     console.log(arguments)
    // }
    // fn();

    // 4. 箭头函数的简写
    //1）省略小括号，当形参有且只有一个的时候
    // let fun = name => {
    //     console.log(`${name}`)
    // }
    // const name = 'I Love You ~'
    // fun(name);
    // 2) 省略花括号，当代码有且只有一条语句的时候，此时return必须省略，语句的执行结果就是函数的返回值
    let fun = name => console.log(`${name}`);
    const name = 'I Love You ~'
    fun(name)
</script>
</body>
</html>